<?php

class DB_User extends \Db_Base
{
    /**
     * 获取用户信息
     * 通过用户名来查询数据库，获取用户的基本信息
     * @param string $uname 用户名
     * @return false|mixed 用户基本信息获取返回false失败
     */
    public function find($uname)
    {
        $query = self::getDb()->prepare("select `pwd`,`id` from `user` where `name` = ?");
        $query->execute(array($uname));
        $ret = $query->fetchAll();
        if (!$ret || count($ret) != 1) {
            list(self::$errno, self::$errmsg) = \Err_Map::get(1003);
            return false;
        }
        return $ret[0];
    }

    /**
     * 检查用户是否已注册
     * @param string $uname 用户名
     * @return bool  true存在false不存在
     */
    public function checkExists($uname)
    {
        $query = self::getDb()->prepare("select count(*) as c from `user` where `name` = ? ");
        $query->execute(array($uname));
        $count = $query->fetchAll();
        if ($count[0]['c'] != 0) {
            list(self::$errno, self::$errmsg) = \Err_Map::get(1005);
            return false;
        }
        return true;
    }

    /**
     * 添加新用户
     * @param string $uname 用户名
     * @param string $password 密码（加密后的密码）
     * @param string $datetime 格式化后的时间信息
     * @return bool 添加成功或失败
     */
    public function addUser($uname, $password, $datetime)
    {
        $query = self::getDb()->prepare("insert into `user` (`id`,`name`,`pwd`,`reg_time`) VALUES (null,?,?,?)");
        $ret = $query->execute(array($uname, $password, $datetime));
        if (!$ret) {
            list(self::$errno, self::$errmsg) = \Err_Map::get(1006);
            return false;
        }
        return true;
    }
}